package obecto.task.animation
{
	import flash.events.Event;
	import flash.events.EventDispatcher;
	import flash.events.IEventDispatcher;
	
	[Event("startValueChange")]
	[Event("endValueChange")]
	public class TweenProperty extends EventDispatcher
	{
		public var name : String;
		
		private var _startValue : *;
		public function set startValue(value : *) : void
		{
			if (value != null && value != _startValue)
			{
				_startValue = value;
				dispatchEvent(new Event("startValueChange"));
			}
		}
		public function get startValue() : * 
		{
			return _startValue;
		}
		
		private var _endValue : *;
		public function set endValue(value : *) : void
		{
			if (value != null && value != _endValue)
			{
				_endValue = value;
				dispatchEvent(new Event("endValueChange"));
			}
		}
		public function get endValue() : * 
		{
			return _endValue;
		}
		
		public function TweenProperty(name : String = null, startValue : * = undefined, endValue : * = undefined)
		{
			super();
			
			this.name = name;
			_startValue = startValue;
			_endValue = endValue;
		}
	}
}